package br.here.jsf;

import java.util.Collection;

import javax.faces.context.FacesContext;

import br.here.dominio.Here;
import br.here.dominio.Local;
import br.here.dominio.Usuario;
import br.here.exceptions.BDException;

public class LocalMBean extends AbstractMBean{
	
	private Local local;
	
	private String latitude;
	
	private String longitude;
	
	public LocalMBean(){
		local = new Local();
	}
	
	public String cadastrar(Local l){
		try{
			Here.getInstance().addLocal(l);
		} catch (BDException e) {
			return "falhaBanco";
		}
		return "sucesso";
	}
	
	//Atualiza local na fachada.
	public String atualizarLocal() throws BDException{
		String idAmigo = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("idAmigo");
		Integer amigoId = Integer.parseInt(idAmigo);
		Usuario amigo = Here.getInstance().findById(amigoId);
		Here.getInstance().setLocalSessao(amigo.getLocalAtual());
		return null;
	}
	
	public String preCadastro(){
		return "preCasdastroLocal";
	}
	
	public Collection<Local> getLista() throws BDException{
			return Here.getInstance().getAllLocais();

	}
	
	public void atualizaLocalMapa(){
		Here.getInstance().getCurrentRequest().getSession().setAttribute("localMapa", this.local);
	}

	public Local getLocal() {
		return local;
	}

	public void setLocal(Local local) {
		this.local = local;
	}
	
	public Local getLocalSistema(){
		return Here.getInstance().getLocalMapa();
	}

	public String getLatitude() {
		return latitude;
	}

	public void setLatitude(String latitude) {
		this.latitude = latitude;
	}

	public String getLongitude() {
		return longitude;
	}

	public void setLongitude(String longitude) {
		this.longitude = longitude;
	}
	
}
